#pragma once
#include "ssdt.h"

	typedef struct _SsdtServiceDescriptorTableEntry
	{
		PULONG funTable;
		ULONG_PTR totalCount;
		ULONG_PTR maxNumber;
		PUCHAR paramTable;
	}SsdtServiceTableEntry, * PSsdtServiceTableEntry;
	typedef struct _SsdtDescriptorTable
	{
		SsdtServiceTableEntry Ssdt;
		SsdtServiceTableEntry Sssdt;

	}SsdtDescriptorTable, * PSsdtDescriptorTable;


#ifndef _WIN64

	EXTERN_C PSsdtDescriptorTable KeServiceDescriptorTable;
	EXTERN_C VOID SsdtDestory();
	EXTERN_C BOOLEAN SsdtInit();
	EXTERN_C ULONG SsdtGetFunctionIndex(char* funcName);
	EXTERN_C ULONG SsdtSetHook(char* funcName, PVOID newFuncAddress);

	EXTERN_C ULONG SsdtGetFunctionAddress(char* funcName);

#else




#endif // !_WIN64

